﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace eDoc.Controls.Menu
{
    public partial class ucAddMenu : System.Web.UI.UserControl
    {
        private int ID = 0;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["id"] != null && Request.QueryString["id"].ToString() != "")
            {
                ID = Convert.ToInt32(Request.QueryString["id"]);
            }

            if (!IsPostBack)
            {
                BindData();
            }
        }

        private void BindData()
        {
            ListItem newItem = new ListItem();
            newItem.Text = "-- Menu Parent --";
            newItem.Value = "0";
            ddlMenuChild.Items.Add(newItem);

            DataTable dtMenuChild = new DataTable();
            dtMenuChild = BO.Data.Select_Menu_Parent();
            for (int i = 0; i < dtMenuChild.Rows.Count; i++)
            {
                newItem = new ListItem();
                newItem.Text = dtMenuChild.Rows[i]["Name"].ToString();
                newItem.Value = dtMenuChild.Rows[i]["ID"].ToString();
                ddlMenuChild.Items.Add(newItem);
            }

            if (ID != 0)
            {
                ltrMenuTitle.Text = "Edit Menu";
                btDelMenu.Visible = true;
                btEditMenu.Text = "Edit Menu";
                DataTable dt = new DataTable();
                dt = BO.Data.Select_Menu_by_ID(ID);

                if (dt != null && dt.Rows.Count > 0)
                {
                    txtMenuName.Text = dt.Rows[0]["Name"].ToString();
                    txtMenuOrder.Text = dt.Rows[0]["Order"].ToString();
                    txtMenuUrl.Text = dt.Rows[0]["Url"].ToString();
                    chkMenuVisible.Checked = Convert.ToBoolean(dt.Rows[0]["Visible"]);
                    chkAlwaysVisible.Checked = Convert.ToBoolean(dt.Rows[0]["AlwaysVisible"]);
                    ddlMenuChild.SelectedValue = dt.Rows[0]["ParentID"].ToString();
                }
            }
            else
            {
                ltrMenuTitle.Text = "Add Menu";
                btDelMenu.Visible = false;
                btEditMenu.Text = "Add Menu";
            }

        }

        protected void btEditMenu_Click(object sender, EventArgs e)
        {
            if (ID == 0)
            {
                if (txtMenuName.Text == "")
                {
                    lblNote.Text = "Bạn chưa nhập tên menu!";
                    txtMenuName.Focus();
                    return;
                }
                if (!BO.Common.CheckInt(txtMenuOrder.Text.Trim()))
                {
                    lblNote.Text = "Bạn nhập sai thứ tự!";
                    txtMenuOrder.Focus();
                    return;
                }

                BO.Data.Insert_Menu(txtMenuName.Text.Trim(), Convert.ToInt32(ddlMenuChild.SelectedValue), Convert.ToBoolean(chkMenuVisible.Checked), 
                        txtMenuUrl.Text, Convert.ToInt32(txtMenuOrder.Text), Convert.ToBoolean(chkAlwaysVisible.Checked));
                lblNote.Text = "Bạn đã thêm mới menu thành công!";
                Response.Redirect("/listmenu.aspx");
            }
            else
            {
                if (txtMenuName.Text == "")
                {
                    lblNote.Text = "Bạn chưa nhập tên menu!";
                    txtMenuName.Focus();
                    return;
                }
                if (!BO.Common.CheckInt(txtMenuOrder.Text.Trim()))
                {
                    lblNote.Text = "Bạn nhập sai thứ tự!";
                    txtMenuOrder.Focus();
                    return;
                }

                BO.Data.Update_Menu(ID,txtMenuName.Text.Trim(), Convert.ToInt32(ddlMenuChild.SelectedValue), Convert.ToBoolean(chkMenuVisible.Checked),
                    txtMenuUrl.Text, Convert.ToInt32(txtMenuOrder.Text), Convert.ToBoolean(chkAlwaysVisible.Checked));
               
                Response.Redirect("/listmenu.aspx");
            }
        }

        protected void btDelMenu_Click(object sender, EventArgs e)
        {

        }
    }
}